package com.jdd.modules.parking.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jdd.common.util.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * @Description: 车辆入场信息
 * @Author: jdd
 * @Date: 2021-02-20
 * @Version: V1.0
 */
@Data
@TableName("park_car_enter_log")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "park_car_enter_log对象", description = "车辆入场信息")
public class ParkCarEnterLog implements Serializable {

    /**
     * 主键
     */
    @TableId(type = IdType.ID_WORKER_STR)
    @ApiModelProperty(value = "主键")
    private String id;
    /**
     * 车场编号
     */
    @ApiModelProperty(value = "车场编号")
    private String parkCode;
    /**
     * 停车场名称
     */
    @Excel(name = "停车场名称", width = 15)
    @ApiModelProperty(value = "停车场名称")
    private String parkName;
    /**
     * 区域Id
     */
    @Excel(name = "区域Id", width = 15)
    @ApiModelProperty(value = "区域Id")
    private String areaId;
    /**
     * 入场批次号
     */
    @Excel(name = "入场批次号", width = 15)
    @ApiModelProperty(value = "入场批次号")
    private String batchNumber;
    /**
     * 车牌号
     */
    @Excel(name = "车牌号", width = 15)
    @ApiModelProperty(value = "车牌号")
    private String plateNo;
    /**
     * 设备序列号，设备唯一
     */
    @ApiModelProperty(value = "设备序列号，设备唯一")
    private String serialNo;
    /**
     * 车辆类型ID
     */
    @ApiModelProperty(value = "车辆类型ID")
    private String carTypeId;
    /**
     * 车辆类型名称
     */
    @ApiModelProperty(value = "车辆类型名称")
    private String carTypeName;
    /**
     * 进场车辆类型(0,无牌车，1,有牌车)
     */
    @Excel(name = "车辆类型", width = 15)
    @ApiModelProperty(value = "进场车辆类型(0,无牌车，1,有牌车)")
    private String carType;
    /**
     * 车辆性质
     */
    @ApiModelProperty(value = "车辆性质（ 0：未知车牌:、1：蓝牌小汽车、2：黑牌小汽车、3：单排黄牌、4：双排黄牌、 5：警车车牌、6：武警车牌、7：个性化车牌、8：单排军车牌、9：双排军车牌、10：使馆车牌、11：香港进出中国大陆车牌、12：农用车牌、13：教练车牌、14：澳门进出中国大陆车牌、15：双层武警车牌、16：武警总队车牌、17：双层武警总队车牌、18：民航车牌、19：新能源车牌）")
    private String carTypeNo;
    /**
     * 0正常入场，1未转卡，2已转卡
     */
    @ApiModelProperty(value = "0正常入场，1未转卡，2已转卡")
    private String isTransfer;
    /**
     * 车辆性质(0:临时车,1:月租车,2储值车，3军警车）
     */
    @Excel(name = "车辆性质", width = 15)
    @ApiModelProperty(value = "车辆性质(0:临时车,1:月租车,2储值车，3军警车）")
    private String carNature;
    /**
     * 车辆进场时间
     */
    @Excel(name = "进场时间", width = 15)
    @ApiModelProperty(value = "车辆进场时间")
    private String carEnterTime;
    /**
     * 车辆进场地点 出口名称
     */
    @Excel(name = "车辆进场地点", width = 15)
    @ApiModelProperty(value = "车辆进场地点 出口名称")
    private String armName;
    /**
     * 抓拍图片地址
     */
    @Excel(name = "抓拍图片地址", width = 15)
    @ApiModelProperty(value = "抓拍图片地址")
    private String imgPath;
    /**
     * 云图片地址
     */
    @ApiModelProperty(value = "云图片地址")
    private String ossImgPath;

    /**
     * 0,未出场 1，已出场
     */
    @Excel(name = "车辆状态", width = 15)
    @ApiModelProperty(value = "车辆状态(0,未出场 1，已出场)")
    private String isOut;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;
    /**
     * 设备ip地址
     */
    @ApiModelProperty(value = "设备ip地址")
    private String ipAddr;
    /**
     * 车位编号（用于多位多车）
     */
    @ApiModelProperty(value = "车位编号（用于多位多车）")
    private String parkNumber;
    /**
     * 创建时间
     */
    @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**
     * 更新时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * 岗亭人员账户
     */
    @Excel(name = "岗亭人员账户", width = 15)
    @ApiModelProperty(value = "岗亭人员账户")
    private String sysUserName;
    /**
     * 工作站字段
     */
    @Excel(name = "工作站字段", width = 15)
    @ApiModelProperty(value = "工作站字段")
    private String workName;
    /**
     * 入场类型：0：默认 1：重复入场 2：手动入场 3：补录入场
     */
    @ApiModelProperty(value = "入场类型：0：默认 1：重复入场 2：手动入场 3：补录入场,4:导入入场")
    private Integer enterType;
    /**
     * 是否成功同步到云端 N:失败 Y:成功
     */
    @ApiModelProperty(value = "是否成功同步到云端 N:失败 Y:成功")
    private String synchronousStatus;
    /**
     * 月卡ID
     */
    @ApiModelProperty(value = "月卡ID")
    private String monthlyCardId;
    /**
     * 是否在当前区域：1在当前区域，0或者空不在当前区域
     */
    @ApiModelProperty(value = "是否在当前区域：1在当前区域，0或者空不在当前区域")
    private Integer thisArea;
    /**
     * 用户微信openid
     */
    @TableField(exist = false)
    private String openid;

    @ApiModelProperty(value = "车牌图片地址")
    private String plateNoImgPath;

    @TableField(exist = false)
    private String uploudOssImg;
}
